package com.ld.poetry.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;

/**
 * 家庭/情侣信息视图对象
 * 用于封装家庭/情侣相关的数据，包括基本信息、头像、昵称、计时等
 */
@Data
public class FamilyVO {

    /**
     * 主键ID
     */
    private Integer id;

    /**
     * 用户ID
     * 创建该家庭/情侣信息的用户ID
     */
    private Integer userId;

    /**
     * 背景封面
     * 家庭/情侣页面的背景图片
     */
    @NotBlank(message = "背景封面不能为空")
    private String bgCover;

    /**
     * 男生头像
     * 男方的头像图片
     */
    @NotBlank(message = "男生头像不能为空")
    private String manCover;

    /**
     * 女生头像
     * 女方的头像图片
     */
    @NotBlank(message = "女生头像不能为空")
    private String womanCover;

    /**
     * 男生昵称
     * 男方的昵称/名字
     */
    @NotBlank(message = "男生昵称不能为空")
    private String manName;

    /**
     * 女生昵称
     * 女方的昵称/名字
     */
    @NotBlank(message = "女生昵称不能为空")
    private String womanName;

    /**
     * 计时
     * 记录在一起的时间，格式：yyyy-MM-dd HH:mm:ss
     */
    @NotBlank(message = "计时不能为空")
    private String timing;

    /**
     * 倒计时标题
     * 倒计时事件的标题，如：纪念日、生日等
     */
    private String countdownTitle;

    /**
     * 状态
     * 是否启用[0:否，1:是]
     */
    private Boolean status;

    /**
     * 倒计时时间
     * 倒计时目标时间，格式：yyyy-MM-dd HH:mm:ss
     */
    private String countdownTime;

    /**
     * 额外信息
     * 家庭/情侣的额外信息，如：座右铭、简介等
     */
    private String familyInfo;

    /**
     * 点赞数
     * 收到的点赞数量
     */
    private Integer likeCount;

    /**
     * 创建时间
     * 格式：yyyy-MM-dd HH:mm:ss
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     * 格式：yyyy-MM-dd HH:mm:ss
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}
